博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Django框架配置
阅读量:6230 次
发布时间:2019-06-21

本文共 2406 字,大约阅读时间需要 8 分钟。

hot3.png

今天我们学习Django框架配置,首先先来看一下如何在Django中创建APP!

1.Django中创建APP

首先我们打开PyCharm,找到之前你创建的Django项目,我的项目是First_Project

  • (1)先选中你要运行的项目-->然后点击Tools-->Run manage.py Task-->进入manage.py控制台(或者直接快捷键Ctrl+Alt+R进入); manage.py控制台.png

  • (2)然后在manage.py控制台中输入startapp 你想要的名称创建app,如我需要创建一个名为users的app,那我需要在控制台中输入startapp users创建app.png

  • (3)你可以创建一个或多个app,而为了方便管理多个app文件,我们可以创建一个apps目录,将所有创建的app都移入其中; apps.png

  • (4)如果我们想要直接使用apps里面的app文件导入模块,我们可以将apps目录设置为Sources Root,操作为:选中apps文件夹-->右击-->Mark Directory as-->Sources Root,那么pycharm将会知道,文件的根路径为apps;

  • (5)设置完后,我们可以直接导入apps目录下任意app中的模块了。但是仅限于在PyCharm中运行,如果想在命令行中运行则会报错(因为Python解释器认为:Python模块的搜索路径是从当前运行的Python文件所在目录开始寻找,然后在是项目的根目录, 一级一级找,最后到site-packages目录)。 那怎么才能在命令行中运行不报错,且将apps在命令行模式下也是Sources Root的话,我们需要在在项目的settings.py文件中导入sys模块,并且加入一行代码:

# 目的就是在django的sys.path模块搜索路径中的第一个位置加上apps的路径sys.path.insert(0, os.path.join(BASE_DIR, 'apps'));
  • (6)最后,先在我们需要执行的文件中导入django和os两个模块,再加入两句代码,然后就可以导入你要使用的app里面的模块了;
os.environ.setdefault"DJANGO_SETTINGS_MODULE", "First_Project.settings")django.setup()
  • (7)此时就可以在命令行中执行了,例如python test.py;

2.Django中创建static静态文件目录

配置static静态文件查找路径: 1.首先打开settings文件,找到STATIC_URL = '/static/',这表示指定static静态文件路径

2.但是在template中是无法使用这个路径的,因为没有把这个路径加入到项目的路径中,因此需要把static路径加入到项目的路径中我们需要添加一句代码:

# 表示把static路径加入到项目的路径中STATICFILES_DIRS = (os.path.join(BASE_DIR, "static"), )

3.这样在template中引用这个静态文件就可以只要指定相对路径就好了

3.Django中创建media媒体文件目录

配置media媒体文件查找路径: 1.在settings文件中加入MEDIA_ROOT = os.path.join(BASE_DIR, 'media')语句,表示把用户上传的所有的东西,如图片等,保存到这个/media/目录下

2.如果我们想要图片上传到/media/banner/%Y/%m/目录下(Y表示年,m表示月),我们可以这样写

image = models.ImageField(max_length=100, upload_to='banner/%Y/%m', verbose_name='用户头像图片')

3.那么在前端的html页面中,我们就可以使用用户上传的图片或其他的可以在html页面显示的东西, 因为数据库中保存了图片上传的路径,{

{ MEDIA_URL }}相当于 /media/{
{ request.user.image }}
相当于 user/1.png,那么 {
{ MEDIA_URL }}{
{ request.user.image }} 相当于 /media/user/1.png

4.因此必须在urls.py文件中写个路由处理逻辑

from django.views.static import serveurl(r'^media/(?P
.*)', serve, {'document_root': MEDIA_ROOT})

我们要注意每次创建一个app都需要在settings中将它注册进来,如果不注册进来,那么执行migration的时候就不会生成表,将app的名称加入到INSTALLED_APPS中;

INSTALLED_APPS = [    'django.contrib.admin',    'django.contrib.auth',    'django.contrib.contenttypes',    'django.contrib.sessions',    'django.contrib.messages',    'django.contrib.staticfiles',    'users',    'courses',    'teachers',    'schools',]

最后在点击Tool--> Run manage.py Task,在控制台中依次执行makemigrations和migrate生成数据库表

学习参考:

转载于:https://my.oschina.net/u/4072026/blog/3051596

你可能感兴趣的文章
docker-compose.yml的使用
查看>>
容易犯错的面试题
查看>>
django框架 restful规范 CBV源码分析
查看>>
jdk 配置(已验证,但是并不是完全相同)
查看>>
《代码敲不队》第九次团队作业:Beta冲刺与验收准备
查看>>
迭代器和生成器
查看>>
requests库入门05-参数类型
查看>>
go语言 windows 32位编译环境搭建
查看>>
我的家庭私有云计划-20
查看>>
手把手教你封装属于自己的Windows7安装镜像
查看>>
《作业指导书》的发布管理问题与解决办法
查看>>
55.Azure内容分发网络(CDN)
查看>>
MySQL常见错误代码(error code)及代码说明
查看>>
微软MVP社区巡讲
查看>>
总结一下,MariaDB 10(MySQL5.6企业版分支)的主要新特性
查看>>
MS UC 2013-0-虚拟机-标准化-部署-2-模板机-制作-3-安装-Tool
查看>>
IDS与IPS的区别
查看>>
初试Windows 8 RTM
查看>>
Linux 下rpm包搭建LAMP环境
查看>>
Windows Server 2016-Nano Server介绍
查看>>